1. Technical Field
The invention relates in general to merging connections having the same destination in a switching node in an Asynchronous Transfer Mode (ATM) network into a single virtual circuit (VC), and in particular to an enqueuing system for providing VC merged connections in a router of an ATM network.
2. Description of the Related Art
The use of ATM switching nodes in an Internet Protocol (IP) network is now an attractive approach since ATM hardware switches have been extensively studied and are widely available in many different architectures. In an ATM switching mechanism, the implementation of label swapping requires linking routers by virtual paths (VP)/virtual circuits (VC).
Traditionally, ATM Adaptation Layer 5 (AAL 5) has been used as the encapsulation method in data communication since it is simple, efficient, and includes a powerful error detection mechanism. For an ATM switch to forward incoming cells to correct outputs, IP route information must be mapped into ATM labels that are maintained within Virtual Path (VP) and/or Virtual Channel (VC) fields of ATM cells.
Several methods of mapping IP route information to ATM labels exist. In the simplest form, each source destination pair is mapped to a unique VC value at a switch. This method, called the non-VC merging case, allows the receiver to easily reassemble cells into respective packets since the VC values can be used to distinguish the senders. However, if there are n sources and m destinations, each switch is potentially required to manage n×m VC labels for full-meshed connectivity. Therefore, this method is not scalable to large networks.
In the second method, called VP merging, the VP labels of cells that are intended for the same destination are translated to the same outgoing VP value, thereby reducing VP consumption downstream. For each VP, the VC value is used to identify the sender so that the receiver can reconstruct packets even though cells from different packets are allowed to interleave. Although the number of label entries is considerably reduced, VP merging is not practical insofar as the VP space is limited (4.096 entries) at the network-to-network interface.
A third method, called VC merging, maps incoming VC labels for the same destination to the same outgoing VC label. This method is scalable and does not have the space constraint problem as in VP merging. With VC merging, cells for the same destination are indistinguishable at the output of a switch. Therefore, cells belonging to different packets for the same destination must not interleave with each other, or else the receiver will not be able to reassemble the packets. With VC merging, the boundary between two adjacent packets are identified by the “End-of-Packet” (EOP) marker used by AAL 5.
If VC merging is implemented, each output adapter of a switching node must contain a number of reassembly buffers, followed by a merging unit and an output buffer. Each reassembly buffer corresponds to an incoming VC value. The purpose of the reassembly buffer is to ensure that cells for a given packet do not interleave with other cells that are merged to the same VC. This mechanism (called store-and-forward at the packet level) can be accomplished by storing each incoming cell for a given packet in the reassembly buffer until the last cell of the packet arrives. When the last cell arrives, all cells in the packet are transferred in an atomic manner to the output buffer for transmission to the next hop. To be efficient, such a process must be performed as quickly as possible. Furthermore, if the traffic is composed of a single class of service (for example best-effort) there is no problem. However, if the traffic is composed of multiple classes of services, only a partial merging is implemented wherein only VCs destined for the same class are mapped to the same outgoing VC.